Kibana Installation Guide for Windows
Following my previous notes on Single-node Elasticsearch Installation Guide for Windows, I spent 2–3 days researching and finally managed to set up the Kibana environment as well. I wanted to write down these notes while they are still fresh, even though it took me two weeks to finish this post due to getting stuck on SSL issues.
Download and Installation
- Go to the official website to download the Windows version of Kibana.
- URL: https://www.elastic.co/downloads/kibana.
- Download the Windows .zip file.
Directory Structure
- bin: Directory for executable files.
- config: Directory for configuration files.
- node: Contains the Node.js runtime environment; Kibana uses Node.js as its runtime.
- node_modules: Stores Node.js packages required by Kibana.
- packages: Core libraries and dependency packages.
- plugins: Directory for plugins.
- src: Kibana source code.
- x-pack: Paid features of the Elastic Stack.
- .i18nrc.json: Internationalization (i18n) configuration file for language localization.
YAML Configuration (config/kibana.yml)
Network Settings
# Network settings
network.host: 0.0.0.0 # localhost is for local access only; 0.0.0.0 allows all connections. If you only want specific network interfaces to accept connections, you can specify a concrete IP address.
http.port: 5601 # Defaults to 5601; configure this only if you need to use a different port.Elasticsearch Settings
Kibana connects to Elasticsearch using the
kibana_systemaccount. I was stuck here for a while because I kept trying to connect using the credentials I manually created in Elasticsearch, which prevented Kibana from starting.When setting up Elasticsearch, three system accounts are generated:
elastic,kibana_system, andlogstash_system, along with their respective random passwords. If, like me, you didn't notice or save the random passwords during service setup, you can reset them by running the following command in the Elasticsearchbinfolder. The password will be displayed on the console.bashelasticsearch-reset-password -u kibana_systemWhen creating SSL certificates for Elasticsearch previously, the
elasticsearch-ssl-http.zipfile contained akibanafolder. Place this folder under the Kibanabindirectory.yaml# Set the URL of the Elasticsearch node to connect to. Use an IP or Domain here, not localhost. elasticsearch.hosts: ["https://127.0.0.1:9200"] # Username and password for connecting to Elasticsearch elasticsearch.username: "kibana_system" elasticsearch.password: "pass" # If ELK has SSL enabled, place the generated certificates under the Kibana directory elasticsearch.ssl.certificateAuthorities: [ "certs/kibana/elasticsearch-ca.pem" ]
Language Settings
# Supported languages are the following: English (default) "en", Chinese "zh-CN", Japanese "ja-JP", French "fr-FR".
i18n.locale: "zh-CN"Configuring SSL Certificates
I took a shortcut here and simply copied the Elasticsearch http.p12 file to the Kibana directory.
server.ssl.enabled: true
server.ssl.keystore.path: "certs/elasticsearch/http.p12"Just like with Elasticsearch, you can store sensitive information in the keystore.
Run the following command in the
binfolder to create a keystore:bashkibana-keystore createUpon successful creation, you will see the following message:
bashCreated Kibana keystore in D:\ELK\kibana-8.17.1\config\kibana.keystoreAdd the SSL certificate password to the keystore:
bashkibana-keystore add server.ssl.keystore.passwordWhen you see the following message, enter the password for
http.p12:bashEnter value for server.ssl.keystore.password:
Starting the Service
Manual Start
Open Command Prompt as an Administrator.
Switch to the
bindirectory:bashcd D:\ELK\kibana-8.17.1\binExecute:
bashkibana.batWait for the startup to complete, then open your browser to test: http://localhost:5601 or https://localhost:5601.
Note: During the first execution, after the CMD shows the message below, it will continue to load other information. If it doesn't appear, there might be an error. Check the Kibana or Elasticsearch logs to see if there is an issue with Kibana or if the connection to Elasticsearch failed. It is normal for the CMD to stay at this line once started:
Native global console methods have been overridden in production environment.Logging into Kibana
To log into Kibana, use the
elasticaccount, which is the default superuser account for Elasticsearch with full permissions.If you forget the password, you can reset it by running the following command in the Elasticsearch
binfolder:bashelasticsearch-reset-password -u elasticUsing the
elasticaccount, you can create other user accounts in the Kibana Management interface:- Find Stack Management -> Security -> Users in the left menu.
- Click the Create user button to create a new user.
- Set the username, password, and appropriate role permissions.
Registering as a Windows Service
I looked into this, but unlike Elasticsearch, Kibana does not have a built-in .bat file to assist with Windows service installation. Most people online seem to use NSSM, but I am not familiar with that tool, so I will skip this part for now and write a separate note once I have researched it.
Change Log
- 2025-03-18 Initial version created.